<?php
//php模拟pdo参数绑定功能
function bindParam(&$sql,$location,$var,$type){
    //确定类型
    switch ($type){
        //字符串
        default://默认使用字符串类型
        case 'STRING':
            //addslashes()使用\转义特殊符号
            $var = addslashes($var);//转义
            $var = "'".$var."'";//加上单引号,SQL语句中字符串插入必须加单引号
            break;
        case 'INTEGER':
        case 'INT':
            $var = (int)$var;//强制转化为int,当然这里可以增加更多的类型
        break;
    }
    for($i = 0,$pos=0;$i<=$location;$i++){
        $pos = strpos($sql,'? ',$pos);
    }
    //替换问号
    $sql = substr($sql,0,$pos).$var.substr($sql,$pos+1);
}


//使用下面的代码试着传入一些非法参数
$uid = 'good';
$pwd = "123456";
$name = '11';
$sql = "SELECT * FROM table WHERE uid=? AND pwd=? AND name=? ";
bindParam($sql,1,$uid,'INT');
bindParam($sql,2,$pwd,'STRING');
bindParam($sql,3,$name,'STRING');
echo $sql;
